// pages/ceshi/ceshi.js
// 引入SDK核心类
import QQMapWX from '../../libs/qqmap-wx-jssdk.js';
 
// 实例化API核心类
let qqMap = new QQMapWX({
    key: 'xxx-xxx-xxx-xxx-xxx-xxx' // 必填
});
Page({
    data: {
        mapId: "map",//wxml中的map的Id值
        //当前定位位置
        latitude: '',//纬度
        longitude: '',//经度
        la1: '',//纬度
        lo1: '',//经度
        la2: '',//纬度
        lo2: '',//经度
        ployline: [],//路线渲染
    },
    moveTolocation(e) {//点击之后回到自己的位置
        //mapId 就是你在 map 标签中定义的 id
        let Id = this.data.mapId
        var mapCtx = wx.createMapContext(Id);
        mapCtx.moveToLocation();
    },
    navigate(e) {
        var _this = this;
        //调用距离计算接口
        qqMap.direction({
            mode: 'walking',//可选值：'driving'（驾车）、'walking'（步行）、'bicycling'（骑行），不填默认：'driving',可不填
            //from参数不填默认当前地址
            to: {
                latitude: _this.data.la2,
                longitude: _this.data.lo2
            },
            success: function (res) {
                var ret = res;
                var coors = ret.result.routes[0].polyline,
                    pl = [];
                //坐标解压（返回的点串坐标，通过前向差分进行压缩）
                var kr = 1000000;
                for (var i = 2; i < coors.length; i++) {
                    coors[i] = Number(coors[i - 2]) + Number(coors[i]) / kr;
                }
                //将解压后的坐标放入点串数组pl中
                for (var i = 0; i < coors.length; i += 2) {
                    pl.push({ latitude: coors[i], longitude: coors[i + 1] })
                }
                //设置polyline属性，将路线显示出来,将解压坐标第一个数据作为起点
                _this.setData({
                    latitude: pl[0].latitude,
                    longitude: pl[0].longitude,
                    polyline: [{
                        points: pl,
                        color: "#00FF00",
                        width: 4,
                        dottedLine: false
                    }]
                })
            },
            fail: function (error) {
                console.error(error);
            },
            complete: function (res) {
            }
        })
    },
    formSubmit(e) {
        var _this = this;
        //调用地址解析接口
        qqMap.geocoder({
            //获取表单传入地址
            address: e.detail.value.geocoder, //地址参数，例：固定地址，address: '北京市海淀区彩和坊路海淀西大街74号'
            success: function (res) {//成功后的回调
                var res = res.result;
                var latitude2 = res.location.lat;
                var longitude2 = res.location.lng;
                //根据地址解析在地图上标记解析地址位置
                _this.setData({ // 获取返回结果，放到markers及poi中，并在地图展示
                    markers: [{
                        id: 0,
                        title: res.title,
                        latitude: latitude2,
                        longitude: longitude2,
                        iconPath: 'https://z3.ax1x.com/2021/11/16/IWW4Nn.png',//图标路径
                        width: 20,
                        height: 20,
                    }],
                    latitude: latitude2,
                    longitude: longitude2,
                    la2: latitude2,
                    lo2: longitude2,
                });
            },
            fail: function (error) {
                console.error(error);
            },
            complete: function (res) {
                console.log("成功!");
            }
        })
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        //获取当前位置
        wx.getLocation({
            type: 'gcj02',
            success: (res) => {
                this.setData({
                    la1: res.latitude,
                    lo1: res.longitude,
                    latitude: res.latitude,
                    longitude: res.longitude,
                })
            }
        })
    },
    clearIcons(e) {
        this.setData({
            latitude: this.data.la1,
            longitude: this.data.l01,
        })
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})